/**
 * @author scylla
 * @version V1.0
 * @Project echo-java-base
 * @Title join main函数
 * @Description *
 * @Package concurrent.mthread.join
 * @Since 2021/8/3 10:06 上午
 */
package concurrent.mthread.join;

public class Joining {

    /**
     * sleepy 加入了dopey线程，导致其挂起直到sleepy执行完毕，睡眠2秒。
     * grumpy 加入了doc线程，导致其挂起直到grumpy执行完毕，睡眠2秒。
     * 此时 grumpy 被中断之后立即被唤醒，执行doc的任务。
     * 等待2s后，sleepy被唤醒，执行dopey的任务。
     * @author chentl
     * @since 10:15 上午 2021/8/3
     * @param args
     * @return
     **/
    public static void main(String[] args) {
        Sleeper sleepy = new Sleeper("sleepy", 2),
                grumpy = new Sleeper("grumpy", 2);
        Joiner dopey = new Joiner("Dopey", sleepy),
                doc = new Joiner("doc", grumpy);

        //中断 grumpy  join方法可以通过 调用interrupt方法进行中断。
        grumpy.interrupt();
//        sleepy.interrupt();

        //先输出谁的日志？
        //先输出 grumpy 和 doc 的日志。

    }
}
